1. Technical Field
The present invention relates generally to a virtual desktop computer system, and more particularly to using a host system running a Virtual Machine Monitor (VMM) with optimized virtual I/O to support multiple remote display systems.
2. Discussion of Background Art
There are compelling advantages to supporting a virtual desktop configuration for a single user with multiple operating environments, and to supporting multiple users from a single host computer system. However, supporting multiple displays for a single user, or supporting multiple users from a single host system, or supporting one or more users from multiple host computers poses significant challenges for contemporary computer system designers.
Conventional computer systems may utilize a display device to view the output from a host computer system. The display device is typically positioned close to the host computer system because of restrictions imposed by various physical connections that electrically couple the display device to the output of the computer system. In some cases, computer systems may support a second display device that has similar proximity restrictions due to the physical connections.
Remote Terminal (RT) displays may advantageously provide users with additional flexibility when choosing an appropriate viewing location and appropriate locations for the host computer. For example, in a corporate environment, a business may wish to keep all of the host computers in a “Computer Room” that is a secure central location having both physical security and environmental management such as air conditioning and power back-up systems. However, it is necessary for users to utilize the host computer systems from their offices and from desks located outside the “computer room.”
The typical office environment today includes personal computers physically located at the users' locations. These personal computers operate on a network having a centralized system for storage, file serving, file sharing, network management and various administrative services. Recognizing the benefits of security, reduced cost of operation, and the general desire for centralizing control, various attempts have been made to reduce the complexity of the computer that resides at the user's location and evolve it into some type of thin client solution. The first portion of the system to be centralized is usually the hard drive, centralizing all of the storage associated with the computer system while the user still runs an operating system on his local desktop. There have been other attempts to centralize more of the computer by effectively turning a client into a dumb terminal, but dumb terminals tend to perform poorly especially for rich multimedia content.
Remote computing systems typically possess certain detrimental operational characteristics that diminish their effectiveness for use in modern computer environments. For example, in order to eliminate restrictive physical proximity connections, remote displays have to resort to ineffective means to transfer the display information from the host computer to the remote display. These ineffective means usually degrade real time performance for video playback and 3D graphics and typically substantially slow down the interactive performance for simple user interface controls.
Some thin clients at the user desktop have a CPU that runs an operating system and have a graphics controller. This makes the thin client, or remote terminal, a system that needs to be maintained with software updates and whose performance is bound by the component selection in the device, not just by the host CPU system. Systems that solve the delay issues by adding more intelligence to the remote display end up with remote systems that require significant processing, a full graphics subsystem including 2D, 3D and video playback, maintenance and system management that significantly reduce the primary justification for centralizing the host computers in the first place.
Recent CPUs have added multiple processor cores as well as virtualization technology. Virtualization technology allows the CPU to support privileged modes, which enables enhanced operating systems and Virtual Machine Monitors (VMM). The VMMs can enable a single CPU to run multiple operating systems, run more than one instance of a single operating system, support multiple users, balance loads between users, allow remote system monitoring and more efficiently manage different system resources. However, CPUs with virtualization technology and VMMs are not adequate alone to support high performance I/O devices such as virtual display systems.
Because of the substantially increased complexity in achieving high performance for multiple remote displays in a VMM system, the host computer systems may require additional resources for effectively managing and controlling the interactive operation of multiple displays across multiple VMMs. A solution is needed that allows a VMM based multi-user host system to more efficiently support numerous remote users with outstanding computing and display performance. A system should allow a host computer to be scaled economically to support numerous virtual desktops for numerous users while delivering an acceptable level of performance.